class Party;

#ifndef PARTY_H_INCLUDED
#define PARTY_H_INCLUDED
#include "monster.h"
#include "map.h"
#include <iostream>
#include <string>

using namespace std;

class Party
{
    public:

    Party();
    Party(const Monster &add);

    string getLeaderName();

    void idle();

    void look();

    //void critical();

    bool checkMonster();

    void addMember(const Monster &in);

    void attackParty(Party &other);

    void rest();

    void talk();

    void traverse(int direction);

    void setLocation(int x, int y);

    void setMap(Map*);

    bool isDefeated();

    class List
    {
        public:
        List* prev;
        Monster* character;
        List* next;
        List(Monster* add, List* prv = NULL, List* nxt = NULL)
        {
            prev = prv;
            next = nxt;
            character = add;
        }
    };

    private:

    List* head;
    List* last;
    int count;
    Map* zone;
    int x;
    int y;
};

#endif // PARTY_H_INCLUDED
